這其實與測試無關是我最近看得很新奇的東西就來額外補充一下XD
在 rb file 裡如果用反引號 可以執行 shell 指令
# $ rails console
2.6.6 :001 > `rails server` #會真的啟動server
所以如果想要在 rb file 裡撰寫 shell 指令可以用這種方式
那該如何判斷此 shell 指令到底有沒有完成?
$CHILD_STATUS 就派上用場了
$CHILD_STATUS 等同於 $? 他會回傳上一個指令的狀態
2.6.6 :001 > `code .` #會真的幫你開啟 vscode
""
2.6.6 :002 > $?
#<Process::Status: pid 71680 exit 0>
2.6.6 :003 > $?.exited?
true
2.6.6 :004 > $?.pid
71680
# 沒有執行成功
2.6.6 :009 > `open /frgr`
The file /frgr does not exist.
""
2.6.6 :010 > $?
#<Process::Status: pid 71726 exit 1>
若 > 1 就表示未完成,可能有錯誤。
若 == 0 表示有成功執行
這也能查看到上一個 pid 的 ID
雖然很少用到,但還是覺得很新奇XD 分享一下